API Documentation
Texture.h
1 // Texture.h
3 //
5 
6 namespace nkGraphics
7 {
11  enum class TEX_TYPE
12  {
13  TEX_2D = 0,
14  TEX_3D,
16  } ;
17 
21  enum class TEX_RENDER_FLAG
22  {
23  NO_RENDER = 0,
26  } ;
27 }
28 
29 namespace nkGraphics
30 {
35  {
36  public :
37 
41  Texture () ;
45  virtual ~Texture () ;
46 
50  ResourceCpuDataDescriptor* getCpuData () const ;
54  unsigned int getCpuSliceCount () const ;
58  bool isFromFile () const ;
62  bool isGammaCorrected () const ;
66  bool isBackBufferTex () const ;
70  TEX_TYPE getTexType () const ;
78  unsigned int getNeededMipsForSize () const ;
82  virtual int getWidth () const = 0 ;
86  virtual int getHeight () const = 0 ;
90  virtual int getDepthOrArraySize () const = 0 ;
94  virtual unsigned int getMipLevels () const = 0 ;
98  virtual FORMAT getTextureFormat () const = 0 ;
102  virtual CPU_ACCESS_FLAG getCpuAccessRights () const = 0 ;
106  virtual USAGE getTextureUsage () const = 0 ;
110  virtual BIND_FLAG getTextureBinding () const = 0 ;
114  virtual RESOURCE_MISC_FLAG getMiscFlag () const = 0 ;
118  virtual unsigned int getSampleCount () const = 0 ;
122  virtual unsigned int getSampleQuality () const = 0 ;
126  virtual bool getAutoMipGeneration () const = 0 ;
127 
128  // Setters
152  void setCpuData (const ResourceCpuDataDescriptor& data) ;
187  void addCpuDataSlice (const nkMemory::BufferView<>& data, unsigned int byteOffset = 0u, unsigned int rowByteSize = 0u, unsigned int sliceByteSize = 0u) ;
201  void addCpuDataSliceCopy (const nkMemory::BufferView<>& data, unsigned int byteOffset = 0u, unsigned int rowByteSize = 0u, unsigned int sliceByteSize = 0u) ;
214  void addCpuDataSliceForward (nkMemory::Buffer&& data, unsigned int byteOffset = 0u, unsigned int rowByteSize = 0u, unsigned int sliceByteSize = 0u) ;
226  void addCpuDataSliceRelativeToLast (unsigned int byteOffset = 0u, unsigned int rowByteSize = 0u, unsigned int sliceByteSize = 0u) ;
232  void setBackBufferTex (bool value) ;
252  void setFromImage (const nkImages::ImageView& image) ;
263  void setFromImageCopy (const nkImages::ImageView& image) ;
279  virtual void freeCpuData () ;
290  virtual void setGammaCorrected (bool value) ;
294  virtual void setWidth (unsigned int width) = 0 ;
298  virtual void setHeight (unsigned int height) = 0 ;
302  virtual void setDepthOrArraySize (unsigned int value) = 0 ;
308  virtual void setMipLevels (unsigned int value) = 0 ;
312  virtual void setTextureFormat (FORMAT format) = 0 ;
318  virtual void setCpuAccessRights (CPU_ACCESS_FLAG rights) = 0 ;
322  virtual void setTextureUsage (USAGE usage) = 0 ;
326  virtual void setTextureBinding (BIND_FLAG binding) = 0 ;
330  virtual void setAutoMipGeneration (bool value) = 0 ;
336  virtual void copyParams (const Texture& other) = 0 ;
341 
351  void setMightManuallyGenerateMip (bool value) ;
355  virtual void prepareAsTexture2d () ;
359  virtual void prepareAsCubemap () ;
363  virtual void prepareAsTexture3d () ;
369  virtual void setRenderFlag (TEX_RENDER_FLAG value) ;
377  virtual void generateMipChain (unsigned int fromMip = 0) ;
378 
389  nkImages::Image convertToImage (int mip, int sliceOrArrayIndex) ;
397  virtual MapResult map (const MapRequestDescriptor& requestDesc) = 0 ;
405  virtual void unmap (const UnmapRequestDescriptor& requestDesc) = 0 ;
414  virtual void gpuCopyFrom (Texture& other, const ResourceGpuCopyDescriptor& descriptor) = 0 ;
415 
421  virtual void exportClassToTree (nkExport::Node* rootNode) override ;
427  virtual void importClassFromTree (nkExport::Node* rootNode) override ;
428  } ;
429 }
nkGraphics::MapResult
Contains all information of the result of a map operation on a resource.
Definition: MapResult.h:12
nkGraphics::Texture::getAutoMipGeneration
virtual bool getAutoMipGeneration() const =0
nkGraphics::RESOURCE_MISC_FLAG
RESOURCE_MISC_FLAG
Available misc flags for resources.
Definition: ResourceMiscFlag.h:12
nkGraphics::Texture::getSampleCount
virtual unsigned int getSampleCount() const =0
nkGraphics::MapRequestDescriptor
A description of a request to map a resource.
Definition: MapRequestDescriptor.h:29
nkGraphics::Texture::setFromImageCopy
void setFromImageCopy(const nkImages::ImageView &image)
nkGraphics::Texture::setDepthOrArraySize
virtual void setDepthOrArraySize(unsigned int value)=0
nkGraphics::Texture::isGammaCorrected
bool isGammaCorrected() const
nkGraphics::Texture::prepareAsCubemap
virtual void prepareAsCubemap()
nkGraphics::Texture::Texture
Texture()
nkGraphics::TEX_TYPE::TEX_CUBEMAP
@ TEX_CUBEMAP
A cubemap.
nkGraphics::Texture::getCpuAccessRights
virtual CPU_ACCESS_FLAG getCpuAccessRights() const =0
nkGraphics::Texture::getMipLevels
virtual unsigned int getMipLevels() const =0
nkGraphics::Texture::isFromFile
bool isFromFile() const
nkGraphics::Texture::freeCpuData
virtual void freeCpuData()
nkGraphics::Texture
A texture used for rendering, hosted on GPU.
Definition: Texture.h:35
nkGraphics::Texture::unmap
virtual void unmap(const UnmapRequestDescriptor &requestDesc)=0
nkGraphics::Texture::getMiscFlag
virtual RESOURCE_MISC_FLAG getMiscFlag() const =0
nkExport::Exportable
An interface to define objects that can be exported using this component.
Definition: Exportable.h:15
nkMemory::BufferView
A view over data.
Definition: BufferView.h:18
nkImages::ImageView
Holds all information required for an image, with no ownership over the data.
Definition: ImageView.h:14
nkGraphics::Texture::copyParams
virtual void copyParams(const Texture &other)=0
nkGraphics::UnmapRequestDescriptor
Description of an unmap request.
Definition: UnmapRequestDescriptor.h:19
nkGraphics::TEX_RENDER_FLAG::DEPTH_RENDER_TARGET
@ DEPTH_RENDER_TARGET
Used as a depth target rendering.
nkGraphics::Texture::setTextureBinding
virtual void setTextureBinding(BIND_FLAG binding)=0
nkGraphics::Texture::getTextureFormat
virtual FORMAT getTextureFormat() const =0
nkGraphics::Texture::setMightManuallyGenerateMip
void setMightManuallyGenerateMip(bool value)
nkGraphics::TEX_RENDER_FLAG::RENDER_TARGET
@ RENDER_TARGET
Used as a color target rendering.
nkGraphics::Texture::addCpuDataSliceRelativeToLast
void addCpuDataSliceRelativeToLast(unsigned int byteOffset=0u, unsigned int rowByteSize=0u, unsigned int sliceByteSize=0u)
nkGraphics::Texture::addCpuDataSlice
void addCpuDataSlice(const nkMemory::BufferView<> &data, unsigned int byteOffset=0u, unsigned int rowByteSize=0u, unsigned int sliceByteSize=0u)
nkGraphics::Texture::setMipLevels
virtual void setMipLevels(unsigned int value)=0
nkGraphics::Texture::getTextureBinding
virtual BIND_FLAG getTextureBinding() const =0
nkMemory::Buffer
A buffer holding binary data.
Definition: Buffer.h:32
nkGraphics::Texture::prepareAsTexture2d
virtual void prepareAsTexture2d()
nkExport::Node
A node in the tree structure representing the data to export / import.
Definition: Node.h:42
nkGraphics::Texture::addCpuDataSliceForward
void addCpuDataSliceForward(nkMemory::Buffer &&data, unsigned int byteOffset=0u, unsigned int rowByteSize=0u, unsigned int sliceByteSize=0u)
nkGraphics::Texture::setAutoMipGeneration
virtual void setAutoMipGeneration(bool value)=0
nkGraphics::Texture::importClassFromTree
virtual void importClassFromTree(nkExport::Node *rootNode) override
nkGraphics::Texture::getTextureUsage
virtual USAGE getTextureUsage() const =0
nkGraphics::Texture::getCpuSliceCount
unsigned int getCpuSliceCount() const
nkGraphics::Texture::~Texture
virtual ~Texture()
nkGraphics::Texture::addCpuDataSliceCopy
void addCpuDataSliceCopy(const nkMemory::BufferView<> &data, unsigned int byteOffset=0u, unsigned int rowByteSize=0u, unsigned int sliceByteSize=0u)
nkGraphics::Texture::setCpuData
void setCpuData(const ResourceCpuDataDescriptor &data)
nkGraphics::Texture::getCpuData
ResourceCpuDataDescriptor * getCpuData() const
nkGraphics::Texture::setFromImage
void setFromImage(const nkImages::ImageView &image)
nkGraphics::TEX_TYPE
TEX_TYPE
The type a texture can be.
Definition: Texture.h:12
nkGraphics::Texture::setHeight
virtual void setHeight(unsigned int height)=0
nkGraphics::Texture::getWidth
virtual int getWidth() const =0
nkGraphics::Texture::getTexType
TEX_TYPE getTexType() const
nkMemory::StringView
Class holding information about a string, with no ownership over the data.
Definition: StringView.h:22
nkGraphics::Texture::setGammaCorrected
virtual void setGammaCorrected(bool value)
nkGraphics::Texture::setTextureFormat
virtual void setTextureFormat(FORMAT format)=0
nkGraphics::Texture::exportClassToTree
virtual void exportClassToTree(nkExport::Node *rootNode) override
nkGraphics::Texture::getSampleQuality
virtual unsigned int getSampleQuality() const =0
nkGraphics::Texture::isBackBufferTex
bool isBackBufferTex() const
nkGraphics::Texture::setTextureFormatFromString
void setTextureFormatFromString(const nkMemory::StringView &str)
nkGraphics::Texture::setTextureUsage
virtual void setTextureUsage(USAGE usage)=0
nkGraphics::TEX_TYPE::TEX_2D
@ TEX_2D
A 2D texture.
nkGraphics::Texture::setWidth
virtual void setWidth(unsigned int width)=0
nkGraphics::Texture::setRenderFlag
virtual void setRenderFlag(TEX_RENDER_FLAG value)
nkGraphics::Texture::setBackBufferTex
void setBackBufferTex(bool value)
nkGraphics::TEX_RENDER_FLAG::NO_RENDER
@ NO_RENDER
Not used as a target.
nkGraphics::Texture::setCpuAccessRights
virtual void setCpuAccessRights(CPU_ACCESS_FLAG rights)=0
nkGraphics::Texture::getDepthOrArraySize
virtual int getDepthOrArraySize() const =0
nkGraphics::Texture::getNeededMipsForSize
unsigned int getNeededMipsForSize() const
nkGraphics::FORMAT
FORMAT
Available formats for resources.
Definition: DxDefinesWrapper.h:86
nkGraphics::Texture::getRenderFlag
TEX_RENDER_FLAG getRenderFlag() const
nkGraphics::Texture::prepareAsTexture3d
virtual void prepareAsTexture3d()
nkGraphics::Texture::generateMipChain
virtual void generateMipChain(unsigned int fromMip=0)
nkGraphics
Encompasses all API of component NilkinsGraphics.
Definition: BoundingBox.h:7
nkGraphics::Texture::map
virtual MapResult map(const MapRequestDescriptor &requestDesc)=0
nkGraphics::ResourceGpuCopyDescriptor
Holds information about a resource copy happening on the GPU only.
Definition: ResourceGpuCopyDescriptor.h:12
nkGraphics::TEX_RENDER_FLAG
TEX_RENDER_FLAG
The render flag possible for a texture.
Definition: Texture.h:22
nkGraphics::TEX_TYPE::TEX_3D
@ TEX_3D
A 3D texture.
nkGraphics::Texture::getHeight
virtual int getHeight() const =0
nkImages::Image
Holds all information required for an image, with ownership over the data.
Definition: Image.h:14
nkGraphics::Texture::gpuCopyFrom
virtual void gpuCopyFrom(Texture &other, const ResourceGpuCopyDescriptor &descriptor)=0
nkGraphics::Texture::setFromImageForward
void setFromImageForward(nkImages::Image &&image)
nkGraphics::Texture::convertToImage
nkImages::Image convertToImage(int mip, int sliceOrArrayIndex)
nkGraphics::ShaderResource
Base class for shader resources. Those are resources that can be fed to a Shader.
Definition: ShaderResource.h:12